class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& a) {
        int n=a.size();
       vector<int> ret(n); 
        int st[n];       //模拟栈
        int r=0;
        int cur;
        //本质是找右侧第一个大于它的日期（然后减）
        for(int i=0;i<n;i++)
        {
            //出栈：要进元素大于栈顶元素（就不满足小压大）
            while(r>0&&a[st[r-1]]<a[i])
            {
                cur=st[--r];        //栈顶元素
                ret[cur]=i-cur; //这里加的是多少天后
            }
            st[r++]=i;
        }
        return ret;
    }
};